<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" schema="dbo" assembly="SIOGDE.AccesoDatos.Entidades" namespace="SIOGDE.AccesoDatos.Entidades" default-lazy="false" default-cascade="none">
  <class name="SIOGDE.AccesoDatos.Entidades.UnidadMilitar" table="UnidadMilitar">
    <id name="Id" column="UnidadMilitarId" type="Int32" unsaved-value="0">
      <generator class="native" />
    </id>
    <many-to-one name="CategoriaUnidad" column="CategoriaUnidadId" class="SIOGDE.AccesoDatos.Entidades.CategoriaUnidad, SIOGDE.AccesoDatos.Entidades" />
    <many-to-one name="Region" column="RegionId" class="Didsoft.DUA.AccesoDatos.Entidades.DUA_Region, Didsoft.DUA.AccesoDatos" />
    <many-to-one name="Fuerza" column="FuerzaId" class="SIOGDE.AccesoDatos.Entidades.Fuerza, SIOGDE.AccesoDatos.Entidades" />
    <many-to-one name="TipoUnidad" column="TipoUnidadId" class="SIOGDE.AccesoDatos.Entidades.TipoUnidad, SIOGDE.AccesoDatos.Entidades" />
    <many-to-one name="UnidadPadre" column="UnidadPadreId" class="SIOGDE.AccesoDatos.Entidades.UnidadMilitar, SIOGDE.AccesoDatos.Entidades" />
    <property name="Guid" column="Guid" type="AnsiString" />
    <property name="Codigo" column="Codigo" type="AnsiString" />
    <property name="Nombre" column="Nombre" type="AnsiString" />
    <property name="NombreLegal" column="NombreLegal" type="AnsiString" />
    <property name="Direccion" column="Direccion" type="AnsiString" />
    <property name="Telefonos" column="Telefonos" type="AnsiString" />
    <property name="Email" column="Email" type="AnsiString" />
    <property name="Descripcion" column="Descripcion" type="AnsiString" />
    <property name="Latitud" column="Latitud" type="Single" />
    <property name="Longitud" column="Longitud" type="Single" />
    <property name="AceptaEntradas" column="AceptaEntradas" type="Boolean" />
    

    <property name="TieneDependientes" formula=" case when exists ( select um.UnidadMilitarId from UnidadMilitar um
                                                            inner join UnidadMilitar umchild on umchild.UnidadPadreId = um.UnidadMilitarId
                                                            where um.UnidadMilitarId = UnidadMilitarId )
                                                            then    
                                                               1
                                                            else
                                                               0
                                                            end" type="Boolean"/>


    <!--<bag name="Dependientes" inverse="true" cascade="none">
      <key column="UnidadPadreId"/>
      <one-to-many class="SIOGDE.AccesoDatos.Entidades.UnidadMilitar, SIOGDE.AccesoDatos.Entidades"/>
    </bag>-->

  </class>
</hibernate-mapping>